﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ConnectionBase;

namespace EveProd
{
	public partial class EditBluePrint : Form
	{
		// Je connecte à la base
		DataClassesEveProdDataContext dataContext = new DataClassesEveProdDataContext();

		public EditBluePrint()
		{
			InitializeComponent();
		}

		/// <summary>
		/// Au chargement de la fenêtre, je met dans le ComboBox tous les BP.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void EditBluePrint_Load(object sender, EventArgs e)
		{
			// Je vais chercher tous les BluePrints de la table.
			var allBluePrint = (from bp in dataContext.Blueprint
			                    join itemsEve in dataContext.ItemsEve on bp.IdBlueprint equals itemsEve.IdItem
								select itemsEve.NomItem);

			foreach (var blueprint in allBluePrint)
			{
				comboBoxBlueprint.Items.Add(blueprint);
			}
		}

		/// <summary>
		/// Ferme la fenêtre.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void buttonFermer_Click(object sender, EventArgs e)
		{
			Close();
		}

		private void AffichageMePe(object sender, EventArgs e)
		{
			// Quand la valeur du COmboBOx est modifié (un BP de sélectionné). Je dois mettre à jour les 2 TextBox
			var infoBp = (from bp in dataContext.Blueprint
			             where bp.ItemsEve.NomItem == comboBoxBlueprint.Text
			             select new
			                     	{
			                     		me = bp.MaterielEfficiency,
										pe = bp.ProductionEfficiency
			                     	}).First();

			textBoxME.Text = infoBp.me.ToString();
			textBoxPE.Text = infoBp.pe.ToString();
		}

		/// <summary>
		/// Va sauvegarder en table les valeurs qui seront mise dans les TextBox.
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void buttonSave_Click(object sender, EventArgs e)
		{
			int me = Convert.ToInt32(textBoxME.Text);
			int pe = Convert.ToInt32(textBoxPE.Text);

			var modifBp = (from bp in dataContext.Blueprint
			             where bp.ItemsEve.NomItem == comboBoxBlueprint.Text
			             select bp);

			foreach (var bp in modifBp)
			{
				bp.MaterielEfficiency = me;
				bp.ProductionEfficiency = pe;

				dataContext.SubmitChanges();
			}

			// Je préviens avec un MessageBox.
			MessageBox.Show("Sauvegarde Terminé", "Terminé", MessageBoxButtons.OK, MessageBoxIcon.Information);
		}

	}
}
